package com.easylinkin.linkappapi.grid.models.dto;

import com.easylinkin.core.models.IOperator;
import com.easylinkin.core.models.Operator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 日报填写DTO
 *
 * @author kyj
 * @date 2024/5/21 9:49
 */
@ApiModel(description = "日报填写DTO")
@Data
public class GridReportDayDetailSaveDTO implements IOperator, Serializable {

    /**
     * 日报id
     */
    @ApiModelProperty(value = "日报id", position = 1, required = true)
    @NotNull(message = "日报ID不能为空")
    private Long reportId;

    /**
     * 网格层级
     */
    @ApiModelProperty(value = "网格层级", position = 2)
    private String gridHierarchy;

    /**
     * 网格数量（个）
     */
    @ApiModelProperty(value = "网格数量（个）", position = 3)
    private Integer gridNum;

    /**
     * 当日施工网格数（个）
     */
    @ApiModelProperty(value = "当日施工网格数（个）", position = 4)
    private Integer buildGridNum;

    /**
     * 当日作业人数（个）
     */
    @ApiModelProperty(value = "当日作业人数（个）", position = 5)
    private Integer workerNum;

    /**
     * 安全员应到数（人）
     */
    @ApiModelProperty(value = "安全员应到数（人）", position = 6)
    private Integer dueSafetyOfficerNum;

    /**
     * 安全员实到数（人）
     */
    @ApiModelProperty(value = "安全员实到数（人）", position = 7)
    private Integer actSafetyOfficerNum;

    /**
     * 当日共有作业班组（个）
     */
    @ApiModelProperty(value = "当日共有作业班组（个）", position = 8)
    private Integer operationTeamNum;

    /**
     * 开展班前喊话（人）
     */
    @ApiModelProperty(value = "开展班前喊话（人）", position = 9)
    private Integer operationCallerNum;

    /**
     * 班前喊话涉及人数（人）
     */
    @ApiModelProperty(value = "班前喊话涉及人数（人）", position = 10)
    private Integer operationCallReferNum;

    /**
     * 当日排查一般隐患（起）
     */
    @ApiModelProperty(value = "当日排查一般隐患（起）", position = 11)
    private Integer checkGeneralHazard;

    /**
     * 一般隐患整改（起）
     */
    @ApiModelProperty(value = "一般隐患整改（起）", position = 12)
    private Integer changeGeneralHazard;

    /**
     * 当日排查重大隐患（起）
     */
    @ApiModelProperty(value = "当日排查重大隐患（起）", position = 13)
    private Integer checkGreatHazard;

    /**
     * 重大隐患整改（起）
     */
    @ApiModelProperty(value = "重大隐患整改（起）", position = 14)
    private Integer changeGreatHazard;

    /**
     * 个人举报隐患（项）
     */
    @ApiModelProperty(value = "个人举报隐患（项）", position = 15)
    private Integer personageReportHazard;

    /**
     * 违规问题罚款（元）
     */
    @ApiModelProperty(value = "违规问题罚款（元）", position = 16)
    private BigDecimal penaltyAmount;

    /**
     * 当日整改投入（万元）
     */
    @ApiModelProperty(value = "当日整改投入（万元）", position = 17)
    private BigDecimal changeInvestmentAmount;

    /**
     * 当日奖励个人（元）
     */
    @ApiModelProperty(value = "当日奖励个人（元）", position = 18)
    private BigDecimal rewardIndividualsAmount;

    /**
     * 当日突发事件情况
     */
    @ApiModelProperty(value = "当日突发事件情况", position = 19)
    private String emergencySituation;

    /**
     * 操作人
     */
    @ApiModelProperty(hidden = true)
    private Operator operator;
}
